﻿using System;
using System.Linq;
using System.Windows.Data;
using Kaesoft.Hospedaje.Entities;

namespace Kaesoft.Hospedaje.Common
{
    public class CatalogoSummaryConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            CatalogoSummary catalogo = null;
            TipoCatalogo tipoCatalogo;

            if (!(value is int))
                return null;

            int codigo = (int)value;
            
            if (value == null || parameter == null)
                return null;

            if (parameter.ToString() == "TipoPadre")
            {
                tipoCatalogo = (TipoCatalogo)int.Parse(value.ToString());
                return tipoCatalogo.ToString();
            }
            else
                Enum.TryParse<TipoCatalogo>(parameter.ToString(), out tipoCatalogo);
                                    
            if (Caching.Instancia.Catalogos(tipoCatalogo) == null)
                return null;

            catalogo = Caching.Instancia.Catalogos(tipoCatalogo).FirstOrDefault(c => c.Codigo == codigo);
            if (catalogo == null)
                return null;

            return catalogo.Descripcion;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return null;
        }
    }
}
